/*
 *    Copyright (c) 2018-2025, cloud All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: cloud
 */

package com.fuyao.cloud.space.vo;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fuyao.cloud.common.core.model.BaseEntity;
import com.fuyao.cloud.common.core.util.DictItemOption;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;


/**
 * 楼栋管理
 *
 * @author liyue
 * @date 2021-11-12 16:03:22
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("fy_room_edifice")
@ApiModel(value = "楼栋管理创建对象")
public class RoomEdificeCreateVO extends BaseEntity<RoomEdificeCreateVO> {

    private static final long serialVersionUID = 1L;

	@ApiModelProperty("租户ID")
	private Long tenantId;

	@ApiModelProperty("单位、部门ID")
	private Long deptId;

	@ApiModelProperty("部门全名称")
	private String deptFullname;

	@ApiModelProperty("创建人")
	private String createBy;

	@ApiModelProperty("创建人ID")
	private Long createId;

	@ApiModelProperty("创建时间")
	private LocalDateTime createTime;

	@ApiModelProperty("修改人")
	private String updateBy;

	@ApiModelProperty("修改时间")
	private LocalDateTime updateTime;

	@ApiModelProperty("删除标记,1:已删除,0:正常")
	private String delFlag;

	@ApiModelProperty(value="唯一编码(用于关联附件)")
	private String unid;

    @ApiModelProperty(value="使用状况{在用、出租出借、闲置、待处置（待报废、销毁）、已处置}")
    private String status;

    @ApiModelProperty(value="所属区域id")
    private Integer regionalId;

    @ApiModelProperty(value="所属区域")
    private String regionalMc;

    @ApiModelProperty(value="所属区域全编码")
    private String regionalFullcode;

    @ApiModelProperty(value="楼栋名称")
    private String name;

    @ApiModelProperty(value="楼栋编号(自动编码按照对应的区域从1开始自动增长)")
    private String code;

    @ApiModelProperty(value="资产编码")
    private String assetNumber;

    @ApiModelProperty(value="楼栋座落")
    private String location;

    @ApiModelProperty(value="取得方式")
    private String acquireWay;

    @ApiModelProperty(value="使用年限")
    private String usefulLife;

    @ApiModelProperty(value="实际用途")
    private String practicalUse;

    @ApiModelProperty(value="批准用途")
    private String permittedUse;

    @ApiModelProperty(value="权属证号")
    private String ownershipNumber;

    @ApiModelProperty(value="权属证明")
    private String ownershipProve;

    @ApiModelProperty(value="权属性质")
    private String ownershipType;

    @ApiModelProperty(value="取得日期")
    private LocalDate builddate;

    @ApiModelProperty(value="发证时间")
    private LocalDate issuingDate;

    @ApiModelProperty(value="资金来源")
    private String sourcesFunds;

    @ApiModelProperty(value="计量单位")
    private String measureUnit;

    @ApiModelProperty(value="竣工日期")
    private LocalDate completionDate;

    @ApiModelProperty(value="建筑结构{钢混结构、钢筋混凝土结构、现浇框架结构、砖混结构、装配式}")
    private String buildingStructure;

    @ApiModelProperty(value="抗震级别{一级、二级、三级、四级}")
    private String seismicGrade;

    @ApiModelProperty(value="地上层数")
    private String upFloor;

    @ApiModelProperty(value="地下层数")
    private String downFloor;

    @ApiModelProperty(value="地上面积")
    private String upArea;

    @ApiModelProperty(value="地下面积")
    private String downArea;

    @ApiModelProperty(value="总层数")
    private String floorcount;

    @ApiModelProperty(value="占地面积")
    private String coveredArea;

    @ApiModelProperty(value="建筑面积")
    private String floorage;

    @ApiModelProperty(value="资产来源{划拨、捐赠、租用、自建、购买}")
    private String sourceAssets;

    @ApiModelProperty(value="投入使用日期")
    private LocalDate useDate;

    @ApiModelProperty(value="数据权限编码，从区域开始一直按着全编码按照表之间的依赖一直延续下去")
    private String dataCode;

    @ApiModelProperty(value="排序号")
    private Integer ordernumber;

    @ApiModelProperty(value="经度")
    private String x;

    @ApiModelProperty(value="纬度")
    private String y;

    @ApiModelProperty(value="备注")
    private String remarks;

	@ApiModelProperty(value="可选项对象")
    private DictOption dictOption;

	@Data
	public static class DictOption{
		@ApiModelProperty(value="建筑结构可选项")
		private List<DictItemOption> buildingStructureList;

		@ApiModelProperty(value="使用状况可选项")
    	private List<DictItemOption> usageStatusList;

		@ApiModelProperty(value="抗震可选项")
    	private List<DictItemOption> earthquakeResistanceLevelList;

		@ApiModelProperty(value="资产来源可选项")
    	private List<DictItemOption> edificeScurceAssetsList;
	}

}
